define([ 'jquery', 'backbone','views/comunes/multiple_email', 'jqueryform', 'jqueryvalidation_es'
         ,'jquerynoty'
         ,'jquerynoty_default_theme',
         'jquerynoty_center_layout'], function($,Backbone,MultipleEmail) {
	var parametrosValRegistroPersonal="";
	var CatedraticoFormView = Backbone.View.extend({
		initialize : function() {
			var that=this;
					
			//dependiendo de si el formulario se utilizara para un registro nuevo o no se hacen
			//algunas validaciones
			if(!this.options.nuevo){
				this.cargarCorreosCatedratico("correos",this.options.id_partido);				
				parametrosValRegistroPersonal={nuevo:0,id_rol_partido:this.options.id_rol_partido};				
			}else{
				this.multipleEmail=new MultipleEmail(
						{el:this.$el.find("#correos")
								,arrayLabel:"correos_electronicos"});
				parametrosValRegistroPersonal={nuevo:1};
			}			
			
			//Validaciones al formulario
			this.$el.find("form").validate(
					{
						submitHandler : function(form) {
							$(form).ajaxSubmit({
								success:function(responseText, statusText, xhr, $form){
									var resultado=JSON.parse(responseText);
									if(resultado.error){
										noty({text:resultado.mensaje,'type':'error','layout':'center'});
									}
									else{
										$("#registro_personal").focus();
										var mensaje="";
										if(that.options.nuevo){
											$form.resetForm();
											that.multipleEmail.reset();
											mensaje="Registro guardado con exito";
										}
										else{										
											mensaje="Registro actualizado con exito";
										}
										noty({text:mensaje
											,'type':'success','timeout':1000
											,'layout':'center','modal':true});										
									}
								}
							});
						},
						rules:{
							'datos_catedratico[registro_personal]':{
								required:true,
								remote:{
									url:Dtt.moduleUrl+'/catedraticos/checkRegistroPersonal',
									data:parametrosValRegistroPersonal
								}
							},
							'datos_catedratico[id_estado_laboral]':{
								required:true
							},
							'datos_personales[nombre]':{
								required:true
							},
							'datos_personales[genero]':{
								required:true
							},
							'datos_contacto[correo_electronico]':{
								email:true
							},
							'datos_usuario[password]':
							{
								minlength:4
							}
							,
							'datos_usuario[repetir_password]':{
								equalTo:"#password"
							}
						}
					});

		},
		render : function() {

		},
		cargarCorreosCatedratico:function(idcontenedor,pid_partido){
			var that=this;
			$("#"+idcontenedor).html("Cargando lista de correos...");
			var parametros={id_partido:pid_partido};
			$.getJSON(this.options.url+"/partido/obtenerListaCorreos",parametros,function(rcorreos){
				$("#"+idcontenedor).html("");
				var multipleEmail=new MultipleEmail(
						{el:that.$el.find("#"+idcontenedor)
							,arrayLabel:"correos_electronicos",
							correos:rcorreos});
				multipleEmail.render();
			});			
		}
	});

	return CatedraticoFormView;
});